// 函数作为返回值 通过一个函数返回一个函数

// function makeFn() {
//   let msg = "Hello Fun"
//   return function () {
//     console.log(msg)
//   }
// }

// // const fn = makeFn()
// // fn()

// makeFn()()

// 模拟once
function once(fn) {
  let done = false
  return function () {
    if(!done) {
      done = true
      return fn.apply(this, arguments)  
    }
  }
}

let pay = once(function (money) {
  console.log(`支付：${money}RMB`)
})

pay(5)
pay(5)
pay(5)
pay(5)
pay(5)
pay(5)